# CI-CD

**Continuous Integration (CI)** - _непрерывная интеграция_ - практика непрерывной интеграции заключается в 
том, что во время разработки код приложения, хранится в репозитории системы управления версиями, например _Git_'е. 
Разработчики непрерывно вносят изменения в код. 
Система непрерывной интеграции **собирает** приложение для каждого изменния кода (_push_'a, _PR_, _MR_, _Tag_ и т.п. в git репозиторий),
выполняет **тесты**, дополнительные **проверки** (_lint_, _security_, и т.п.) и др. наборы скриптов.
_Эти шаги гарантируют, что изменения проходят все тесты, 
рекомендации и стандарты соответствия кода, которые установлены для приложения._

**Continuous Delivery (CD)** - _непрерывная доставка_:

Теперь, в жизненном цикле приложения, кроме того, что приложение создается и тестируется каждый раз, 
когда изменение кода вносится в кодовую базу на этапе _ci_, приложение также непрерывно развертывается _cd_.  
Однако при **непрерывной доставке развертывание инициируется вручную**.

_Непрерывная доставка проверяет код автоматически, но требует вмешательства человека, 
чтобы вручную инициировать развертывание изменений._

**Continuous Deployment (CD)** - _Непрерывное развертывание_ :

Это еще один шаг после непрерывной интеграции, аналогичный непрерывной доставке.
Разница в том, что **запуск развертывания приложения происходит автоматически**.  
Вмешательство человека не требуется. Триггером может быть MR в мастер, tag и т.п.

